home *** CD-ROM | disk | FTP | other *** search
/ TOS Silver 2000 / TOS Silver 2000.iso / programm / GNU_C++ / LIB / CFLIB-11.LZH / src / cflib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-04-12  |  16.7 KB  |  462 lines

  1. #ifndef _cflib_h_
  2. #define _cflib_h_
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6. #include <string.h>
  7.  
  8. #ifdef __MINT__                /* MiNT/GEM-Lib */
  9. #include <osbind.h>
  10. #include <mintbind.h>
  11. #include <gem.h>
  12. #else                                /* PureLIB/MT_AES */
  13. #include <tos.h>
  14. #include <mt_aes.h>
  15. #include <vdi.h>
  16. #endif
  17.  
  18. /*******************************************************************************
  19.  * Version
  20.  *******************************************************************************/
  21.  
  22. #ifdef __MINT__
  23. #define CFLIB_PATCHLEVEL    "11m"
  24. #else
  25. #define CFLIB_PATCHLEVEL    "11p"
  26. #endif
  27. extern char __Ident_cflib[];
  28.  
  29. /*******************************************************************************
  30.  * spezielle Typen der CF-Lib
  31.  *******************************************************************************/
  32.  
  33. typedef enum {null, Con, TCon, Datei, Terminal, 
  34.                   Modem1, Modem2, Seriell1, Seriell2, Prn} DEBUGDEV;
  35.  
  36. typedef struct _popup
  37. {
  38.     OBJECT    *tree;        /* der Objektbaum */
  39.     int        max_item;    /* maximal mögliche Anzahl */
  40.     int        akt_item;    /* aktuelle Anzahl */
  41.     int        item_len;    /* Länge eines Eintrages */
  42. } POPUP;
  43.  
  44. typedef int     (* KEY_CB)(OBJECT *tree, int edit_obj, int kstate, int *kreturn, int *next_obj);
  45.  
  46.  
  47. typedef struct _mdial
  48. {
  49.     OBJECT            *tree;
  50.     int                win_handle;
  51.     char                *win_name;
  52.     int                edit_obj,
  53.                         edit_idx,
  54.                         next_obj;
  55.     int                save_frame, 
  56.                         delta_y;
  57.     int                is_shaded;
  58.     struct _mdial    *next;
  59. } MDIAL;
  60.  
  61. typedef void (* MDIAL_WCB)(int *msg);
  62.  
  63.  
  64. typedef struct _wdial
  65. {
  66.     struct _wdial    *next;
  67.  
  68.     OBJECT    *tree;                        /* Objektbaum */
  69.     OBJECT    *icon;                        /* Icon für Iconify */
  70.     int        mode;                            /* aktueller Status */
  71.     int        win_handle;                    /* Fensterhandle */
  72.     char        win_name[80];                /* Fenstertitel */
  73.     int        win_kind;                    /* Elemente */
  74.     GRECT        work;                            /* Fenstergröße */
  75.     int        title_obj;                    /* Objektnummer des Titelobjektes */
  76.     int        cancel_obj;                    /*       "      des Abbruchbuttons */
  77.     int        delta_y;                        /* Offset bis zum Titelobjekt */
  78.     int        edit_idx,                    /* Objektnummern für die Editfelder */
  79.                 next_obj,
  80.                 edit_obj;
  81.  
  82.     void        (*open_cb) (struct _wdial *dial);    
  83.     int        (*exit_cb) (struct _wdial *dial, int exit_obj);    
  84. } WDIALOG;
  85.  
  86. typedef void     (* WDIAL_OCB)(WDIALOG *dial);
  87. typedef int        (* WDIAL_XCB)(WDIALOG *dial, int exit_obj);
  88.  
  89. #define WOCB_NULL    (WDIAL_OCB)NULL
  90. #define WXCB_NULL    (WDIAL_XCB)NULL
  91.  
  92. typedef int (* FSEL_CB)(char *path, char *name);
  93. #define FSCB_NULL    (FSEL_CB)NULL
  94.  
  95. /*******************************************************************************
  96.  * globals.c
  97.  *******************************************************************************/
  98.  
  99. extern int        gl_apid, gl_phys_handle;
  100. extern GRECT    gl_desk;    
  101.  
  102. extern int        sys_big_id, sys_big_height, sys_big_pts,
  103.                     sys_sml_id, sys_sml_height, sys_sml_pts;
  104. extern int        sys_wchar, sys_hchar, sys_wbox, sys_hbox;
  105.  
  106. extern int        gl_wchar, gl_hchar, gl_wbox, gl_hbox;
  107.  
  108. extern int        gl_gdos;
  109. extern int        gl_planes;
  110.  
  111. extern int        gl_gem;
  112. extern int        gl_mint;
  113. extern int        gl_naes;
  114. extern int        gl_magx;
  115. extern int        gl_nvdi;
  116.  
  117. extern char     gl_appdir[];
  118.  
  119. /*******************************************************************************
  120.  * alerts.c
  121.  *******************************************************************************/
  122.  
  123. extern int do_alert    (int def, int undo, char *str);
  124. extern int do_walert    (int def, int undo, char *str, char *win_title);
  125.  
  126. /*******************************************************************************
  127.  * app.c
  128.  *******************************************************************************/
  129.  
  130. extern void        init_app(char *rsc);
  131. extern void        exit_gem(void);
  132. extern void        exit_app(int ret);
  133. extern void        hide_mouse(void);
  134. extern int      hide_mouse_if_needed(GRECT *rect);
  135. extern void        show_mouse(void);
  136. extern int        appl_xgetinfo(int type, int *out1, int *out2, int *out3, int *out4);
  137.  
  138. /*******************************************************************************
  139.  * asciitab.c
  140.  *******************************************************************************/
  141.  
  142. extern int     ascii_table(int id, int pts);
  143. extern void set_asciitable_strings(char *title, char *button);
  144.  
  145. /*******************************************************************************
  146.  * comm.c
  147.  *******************************************************************************/
  148.  
  149. extern void send_m_special(int mode, int app);
  150. extern void send_vastart(int id, char *str);
  151. extern void send_scchanged(void);
  152.  
  153. /*******************************************************************************
  154.  * cookie.c
  155.  *******************************************************************************/
  156.  
  157. extern int    getcookie(char *cookie, long *value);
  158.  
  159. /*******************************************************************************
  160.  * debug.c
  161.  *******************************************************************************/
  162.  
  163. extern int    gl_debug;
  164.  
  165. extern void    debug_init(char *prgName, DEBUGDEV dev, char *file);
  166. extern void    debug_exit(void);
  167. extern void    debug(char *FormatString, ...);
  168.  
  169. /*******************************************************************************
  170.  * dragdrop.c
  171.  *******************************************************************************/
  172.  
  173. #ifndef DD_OK
  174. #define DD_OK            0
  175. #define DD_NAK            1
  176. #define DD_EXT            2
  177. #define DD_LEN            3
  178. #define DD_TIMEOUT    4000
  179. #define DD_NUMEXTS    8
  180. #define DD_EXTSIZE    32
  181. #define DD_NAMEMAX    128
  182. #define DD_HDRMAX        (8+DD_NAMEMAX)
  183. #endif
  184.  
  185. extern int        dd_create(int apid, int winid, int msx, int msy, int kstate, char *exts);
  186. extern int        dd_stry(int fd, char *ext, char *name, long size);
  187. extern void        dd_close(int fd);
  188. extern int        dd_open(int ddnam, char *ext);
  189. extern int        dd_rtry(int fd, char *name, char *ext, long *size);
  190. extern int        dd_reply(int fd, int ack);
  191.  
  192. /*******************************************************************************
  193.  * file.c
  194.  *******************************************************************************/
  195.  
  196. extern int    file_exists        (char *filename);
  197. extern int    path_exists        (char *pathname);
  198.  
  199. extern int    get_path            (char *path, char drive);
  200. extern int    set_path            (char *path);
  201.  
  202. extern void        split_filename    (char *fullname, char *path, char *name);
  203. extern void     set_extension    (char *filename, char *new_ext);
  204.  
  205. extern int         make_normalpath(char *path);
  206. extern void     make_shortpath    (char *path, char *shortpath, int maxlen);
  207.  
  208. #define NO_CASE    0        /* TOS-FS */
  209. #define HALF_CASE    1        /* VFAT/Mac */
  210. #define FULL_CASE    2        /* Minix */
  211. extern int        fs_long_name    (char *filename);
  212. extern int        fs_case_sens    (char *filename);
  213.  
  214. /*******************************************************************************
  215.  * filesel.c
  216.  *******************************************************************************/
  217.  
  218. extern int select_file(char *path, char *name, char *mask, char *title, FSEL_CB open_cb);
  219.  
  220. /*******************************************************************************
  221.  * fontsel.c
  222.  *******************************************************************************/
  223.  
  224. #define FS_M_XFSL        1        /* Cookie xFSL */
  225. #define FS_M_FPROT    2        /* Fontprotokoll */
  226. #define FS_M_MAGX        4        /* MagiC fnts_* */
  227. #define FS_M_ALL        (FS_M_XFSL|FS_M_FPROT|FS_M_MAGX)
  228.  
  229. #define FS_F_MONO        8        /* nur monospaced */
  230.  
  231. extern int do_fontsel(int flags, char *title, int *id, int *pts);
  232.  
  233. /*******************************************************************************
  234.  * form_do.c
  235.  *******************************************************************************/
  236.  
  237. extern int    cf_form_do(OBJECT *tree, int *ed_start);
  238. extern int     simple_dial(OBJECT *tree, int start_edit);
  239. extern KEY_CB set_formdo_keycb(KEY_CB keycb);
  240.  
  241. /*******************************************************************************
  242.  * magx.c
  243.  *******************************************************************************/
  244. extern int    get_magx_version(void);
  245.  
  246. #define MX_NOTXOBJ        0        /* kein MagiC-Objekt */
  247. #define MX_UNDERLINE        1        /* String als Überschrift */
  248. #define MX_RADIO            2        /* Radio ohne Shortcut */
  249. #define MX_SCRADIO        3        /* Radio mit Shortcut */
  250. #define MX_CHECK            4        /* Check ohne Shortcut */
  251. #define MX_SCCHECK        5        /* Check mit Shortcut */
  252. #define MX_SCEXIT            6        /* EXIT mit Shortcut */
  253. #define MX_SCSTRING        7        /* String mit Shortcut */
  254. #define MX_GROUPBOX        8        /* Gruppenrahmen */
  255. #define MX_EDIT3D            9        /* 3D-Editfeld */
  256.  
  257. #define MX_GROUPBOX2        10        /* Gruppenrahmen, kleine Schrift */
  258.  
  259. #define MX_UNKNOWN        -1        /* Unbekanntes WHITEBACK-Obj */
  260.  
  261. extern int    get_magx_obj(OBJECT *tree, int obj);
  262. extern int    get_magx_shortcut(OBJECT *tree, int obj, char *c);
  263.  
  264. /*******************************************************************************
  265.  * mdial.c
  266.  *******************************************************************************/
  267.  
  268. extern MDIAL    *open_mdial        (OBJECT *tree, int edit_start);
  269. extern void         close_mdial        (MDIAL *mdial);
  270. extern int        do_mdial            (MDIAL *mdial);
  271.  
  272. extern int     simple_mdial        (OBJECT *tree, int edit_start);
  273.  
  274. extern void set_mdial_wincb    (MDIAL_WCB cb);
  275.  
  276. extern void    redraw_mdobj        (MDIAL *mdial, int obj);
  277. extern void change_mdedit        (MDIAL *mdial, int new);
  278.  
  279. /*******************************************************************************
  280.  * menu.c
  281.  *******************************************************************************/
  282.  
  283. extern int        create_menu(OBJECT *tree);
  284. extern void     delete_menu(void);
  285.  
  286. extern void     disable_menu(void);
  287. extern void     enable_menu(void);
  288.  
  289. extern int         is_menu_key(int kreturn, int kstate, int *title, int *item);
  290.  
  291. /*******************************************************************************
  292.  * misc.c
  293.  *******************************************************************************/
  294.  
  295. extern long        ts2ol(short i1, short i2);
  296. extern void     ol2ts(long l, short *i1, short *i2);
  297.  
  298. extern void     save_background(GRECT *box, MFDB *buffer);
  299. extern void     restore_background(GRECT *box, MFDB *buffer);
  300.  
  301. extern void     *malloc_global(long size);
  302.  
  303. extern int        get_patchlev(char *id_str, char *pl);
  304.  
  305. /*******************************************************************************
  306.  * nkcc.c
  307.  *******************************************************************************/
  308.  
  309.    /* NKCC key code flags */
  310. #define NKF_FUNC     0x8000         /* function          */
  311. #define NKF_RESVD    0x4000         /* resvd, ignore it! */
  312. #define NKF_NUM      0x2000         /* numeric pad       */
  313. #define NKF_CAPS     0x1000         /* CapsLock          */
  314. #define NKF_ALT      0x0800         /* Alternate         */
  315. #define NKF_CTRL     0x0400         /* Control           */
  316. #define NKF_SHIFT    0x0300         /* any Shift key     */
  317. #define NKF_LSH      0x0200         /* left Shift key    */
  318. #define NKF_RSH      0x0100         /* right Shift key   */
  319.  
  320.    /* special key codes for keys performing a function */
  321. #define NK_INVALID   0x00           /* invalid key code  */
  322. #define NK_UP        0x01           /* cursor up         */
  323. #define NK_DOWN      0x02           /* cursor down       */
  324. #define NK_RIGHT     0x03           /* cursor right      */
  325. #define NK_LEFT      0x04           /* cursor left       */
  326. #define NK_M_PGUP    0x05           /* Mac: page up      */
  327. #define NK_M_PGDOWN  0x06           /* Mac: page down    */
  328. #define NK_M_END     0x07           /* Mac: end          */
  329. #define NK_BS        0x08           /* Backspace         */
  330. #define NK_TAB       0x09           /* Tab               */
  331. #define NK_ENTER     0x0a           /* Enter             */
  332. #define NK_INS       0x0b           /* Insert            */
  333. #define NK_CLRHOME   0x0c           /* Clr/Home          */
  334. #define NK_RET       0x0d           /* Return            */
  335. #define NK_HELP      0x0e           /* Help              */
  336. #define NK_UNDO      0x0f           /* Undo              */
  337. #define NK_F1        0x10           /* function key #1   */
  338. #define NK_F2        0x11           /* function key #2   */
  339. #define NK_F3        0x12           /* function key #3   */
  340. #define NK_F4        0x13           /* function key #4   */
  341. #define NK_F5        0x14           /* function key #5   */
  342. #define NK_F6        0x15           /* function key #6   */
  343. #define NK_F7        0x16           /* function key #7   */
  344. #define NK_F8        0x17           /* function key #8   */
  345. #define NK_F9        0x18           /* function key #9   */
  346. #define NK_F10       0x19           /* function key #10  */
  347. #define NK_M_F11     0x1a           /* Mac: func key #11 */
  348. #define NK_ESC       0x1b           /* Esc               */
  349. #define NK_M_F12     0x1c           /* Mac: func key #12 */
  350. #define NK_M_F14     0x1d           /* Mac: func key #14 */
  351. #define NK_RVD1E     0x1e           /* reserved!         */
  352. #define NK_DEL       0x1f           /* Delete            */
  353.  
  354. extern int                    nkc_init        (void);
  355. extern unsigned short    nkc_tos2n    (long toskey);
  356. extern long                    nkc_n2tos    (unsigned short nkcode);
  357. extern unsigned char        nkc_toupper    (unsigned char chr);
  358. extern unsigned char        nkc_tolower    (unsigned char chr);
  359.  
  360. extern unsigned short    gem_to_norm    (int ks, int kr);
  361. extern void                 norm_to_gem    (unsigned int norm, int *ks, int *kr);
  362.  
  363. extern void                 str_toupper    (char *str);
  364. extern void                 str_tolower    (char *str);
  365.  
  366. /*******************************************************************************
  367.  * objc.c
  368.  *******************************************************************************/
  369.  
  370. extern void     set_obspec    (OBJECT *tree, int obj, long spec);
  371. extern long     get_obspec    (OBJECT *tree, int obj);
  372.     
  373. extern int         get_obtype    (OBJECT *tree, int obj, short *ud);
  374. extern void     get_objframe(OBJECT *tree, int obj, GRECT *r);
  375.  
  376. extern void     set_flag        (OBJECT *tree, int obj, int flag, int set);
  377. extern int         get_flag        (OBJECT *tree, int obj, int flag);
  378. extern int        find_flag    (OBJECT *tree, int flag);
  379.  
  380. extern void        set_state    (OBJECT *tree, int obj, int state, int set);
  381. extern int        get_state    (OBJECT *tree, int obj, int state);
  382. extern void        tree_state    (OBJECT *tree, int start_obj, int state, int set);
  383.  
  384. extern void        set_string    (OBJECT *tree, int obj, char *text);
  385. extern void     get_string    (OBJECT *tree, int obj, char *text);
  386.  
  387. extern void     set_int        (OBJECT *tree, int obj, int i);
  388. extern int      get_int        (OBJECT *tree, int obj);
  389.  
  390. extern void     set_long        (OBJECT *tree, int obj, long l);
  391. extern void     set_ulong    (OBJECT *tree, int obj, unsigned long l);
  392. extern long     get_long        (OBJECT *tree, int obj);
  393.  
  394. extern void     redraw_obj    (OBJECT *tree, int obj);
  395.  
  396. /*******************************************************************************
  397.  * popup.c
  398.  *******************************************************************************/
  399.  
  400. extern int    create_popup(POPUP *p, int anz, int maxlen, char *item);
  401. extern int    free_popup(POPUP *p);
  402. extern int    append_popup(POPUP *p, char *item);
  403.  
  404. extern int    do_popup(POPUP *p, int button);
  405. extern int    cf_menu_popup(MENU *m1, int x, int y, MENU *m2, int button, int offset);
  406.  
  407. #define POP_OPEN    1
  408. #define POP_CYCLE    2
  409. extern int    handle_popup(OBJECT *dial, int dial_obj, OBJECT *pop, int pop_obj, int mode);
  410.  
  411. /*******************************************************************************
  412.  * scrap.c
  413.  *******************************************************************************/
  414.  
  415. extern int    get_scrapdir(char *scrap);
  416. extern void scrap_clear(void);
  417. extern char *scrap_rtxt(char *buf, long *len, long maxlen);
  418. extern void scrap_wtxt(char *buf);
  419.  
  420. /*******************************************************************************
  421.  * userdef.c
  422.  *******************************************************************************/
  423.  
  424. extern void fix_dial(OBJECT *tree);
  425. extern void fix_menu(OBJECT *tree);
  426. extern void fix_popup(OBJECT *tree, int thin_line);
  427.  
  428. /*******************************************************************************
  429.  * vdi.c
  430.  *******************************************************************************/
  431.  
  432. extern int    open_vwork(int *w_out);
  433. extern void set_clipping(int handle, int x, int y, int w, int h, int on);
  434. extern int     height2pts(int handle, int f_id, int f_height);
  435.  
  436. /*******************************************************************************
  437.  * wdial.c
  438.  *******************************************************************************/
  439.  
  440. /* wd->mode */
  441. #define WD_OPEN   1
  442. #define WD_ICON   2
  443. #define WD_SHADE  4
  444.  
  445. #define WD_CLOSER    0xFF
  446.  
  447. extern WDIALOG    *create_wdial(OBJECT *tree, OBJECT *icon, int edit_obj, 
  448.                                         WDIAL_OCB open_cb, WDIAL_XCB exit_cb);
  449. extern void    delete_wdial(WDIALOG *wd);
  450. extern void    open_wdial(WDIALOG *wd, int pos_x, int pos_y);
  451. extern void    close_wdial(WDIALOG *wd);
  452.  
  453. extern void    redraw_wdobj(WDIALOG *wd, int obj);
  454. extern void    redraw_wdicon(WDIALOG *wd, int obj);
  455. extern void change_wdedit(WDIALOG *wd, int new);
  456.  
  457. extern int    message_wdial(int *msg);
  458. extern int    click_wdial(int clicks, int x, int y, int kshift, int mbutton);
  459. extern int    key_wdial(int kreturn, int kstate);
  460.  
  461. #endif
  462.